#include "hot.hpp"
#include <unistd.h>
//DataManager *__data;
HotManager::HotManager()
{
    Config *ptr=Config::GetConfigObj();
    _pack_dir=ptr->GetPackDir();
    _back_dir=ptr->GetBackDir();
    _pack_suffix=ptr->GetPackSuffix();
    _hot_time=ptr->GetHotTime();
    cloudBackup::FileUtil tmp1(_back_dir);
	cloudBackup::FileUtil tmp2(_pack_dir);
	tmp1.CreateDir();
	tmp2.CreateDir();
}

bool HotManager::RunModule()
{
    while(true)
    {
        //遍历备份目录。获取到所有的文件名称 
        cloudBackup::FileUtil fu(_back_dir);
        vector<string> arry;
        fu.ScanDir(&arry);
        //遍历判断文件是否是非热点文件,并且压缩
        for(auto &str : arry)
        {
            cloudBackup::FileUtil fus(str);
            time_t last_atiem=fus.LastAccFile();
            time_t cur_tiem=time(NULL);
            if(cur_tiem-last_atiem<_hot_time)
            {
                continue;
            }
            BackupInfo bi;
            if(_data->GetOneByRealPath(str,&bi)==false)
            {
                bi.NewBackupInfo(str);
            }
            fus.Compress(bi.pack_path);

            //删除源文件，修改备份信息
            remove(str.c_str());
            bi.pack_flag=true;
            _data->Updata(bi);
        }
        usleep(1000);
    }
    return true;
}
